The present invention relates to an information processing system, a storage apparatus and a storage device.
Along with spread of solid state drives (SSDs) using NAND flash memory as a memory medium, SSDs become more widely used as internal storage devices in storage systems instead of hard disk drives (HDDs). An SSD allows faster access than an HDD and SSDs installed in a storage apparatus as storage devices allow high-speed processing of the storage apparatus. Development has been carried out for practical use of storage devices equipped with nonvolatile semiconductor memory capable of faster access than flash memory, such as resistance random access memory (ReRAM) and phase change random access memory (PRAM). However, the performance of a storage controller in a storage system does not keep up with the speed-up of a storage device and it cannot fully utilize the performance of the high-speed storage device.
On the other hand, the storage apparatus uses a technology called redundant array of independent (or inexpensive) disks (RAID) for high reliability of the system. RAID manages a plurality of storage devices as a group (hereinafter referred to as a RAID group) and creates redundant data called parity from data. Then, RAID stores data and parity to different storage devices within the RAID group, respectively. When a storage device fails, RAID can restore data stored in the failed storage device from data and parity stored in the other storage devices.
However, in the configuration using the parity, it is required to update parity each time of writing data to a storage device and the data transfer occurs due to the parity update, which is a factor preventing a speedup of a write process by a storage controller. In addition, some types of RAID achieve high reliability by duplicating data, that is, by storing data and redundant data identical to the data to two different storage devices, respectively. This configuration also needs to update the duplicated data each time of data write to a storage device, which is a degradation factor of the processing performance of the storage controller. In recent years, there is a great demand for analyzing large amounts of data called big data, and the processing load of the storage controller to transfer data is increasing.
U.S. Pat. No. 6,098,191 A reduces the processing load of a storage controller by the technology described below. First, the storage controller transfers new data received from a host computer to a first storage device storing old data. The first storage device creates intermediate parity based on the old data and the new data. The storage controller reads the intermediate parity from the first storage device, and transfers the intermediate parity to a second storage device storing old parity. The second storage device creates new parity on the basis of the old data and the intermediate parity. Accordingly, updating of the parity associated with updating of the data is performed.